package main

import "fmt"

//数组
//var 数组名 [容量]T
//存放元素的容器
//必须指定存放元素的类型和容量（长度）
//数组的长度是数组类型的一部分

func main() {
	var a1 [3]bool
	var a2 [4]bool
	fmt.Printf("a1:%T a2:%T\n", a1, a2)
	//数组的初始化
	//如果不初始化，默认元素都是零值，bool值为false，整型和浮点型都是0.字符串""
	fmt.Println(a1, a2)
	//初始化方式1
	a1 = [3]bool{true, false, true}
	//初始化方式2,推导数组容量
	a2 = [...]bool{true, false, true, false}
	//初始化方式3，指定索引
	a3 := [5]int{0: 1, 3: 5}
	fmt.Println(a1, a2, a3)

	//遍历数组
	//for 循环
	for i := 0; i < len(a3); i++ {
		fmt.Println(a3[i])
	}
	//for ...range循环
	for v, i := range a3 {
		fmt.Println(v, i)
	}

	//多维数组
	a4 := [3][2]int{
		{2, 3},
		{3, 4},
		{4, 5},
	}
	for _, j := range a4 {
		for _, k := range j {
			fmt.Printf("%d\t", k)
		}
		fmt.Println()
	}
}
